package org.sbbs.app.gen.webapp.action;

import org.sbbs.app.gen.model.MasterEntity;
import org.sbbs.base.searcher.SearchFilterBuilder;
import org.sbbs.base.webapp.action.BaseJqgridPagedAction;
import org.sbbs.app.gen.service.MasterEntityManager;
import org.sbbs.base.pager.IPager;
import org.sbbs.base.pager.impl.JqgridPagerImpl;
import org.sbbs.base.searcher.SearchFilter;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Criterion;
import org.sbbs.base.pagequery.hibernate.CriteriaUtil;
import org.sbbs.base.pagequery.hibernate.CustomCriteria;
import org.sbbs.base.searcher.SearchOperator;
public class MasterEntityPagedAction extends BaseJqgridPagedAction {
	private MasterEntityManager	masterEntityManager;
	public MasterEntityManager getMasterEntityManager() {
		return masterEntityManager;
	}

	public void setMasterEntityManager(MasterEntityManager masterEntityManager) {
		this.masterEntityManager = masterEntityManager;
	}
	@Override
	public Class getSearchEntityClazz() {
		return MasterEntity.class;
	}

	@Override
	public int getSearchFilterType() {
		return SearchFilterBuilder.PROPERTY_FILTER;
	}

	@Override
	public String gridPageList() {
        this.setSearchFilterType( SearchFilterBuilder.PROPERTY_FILTER );
        try {
            IPager pager = new JqgridPagerImpl( getRequest() );
            SearchFilter sf = SearchFilterBuilder.buildSearchFilter( getRequest(), this.getSearchFilterType() );
            if ( this.getCustomCriteria() != null )
                pager = this.masterEntityManager.pagedQuery( this.getSearchEntityClazz(), pager, sf, this.getCustomCriteria() );
            else
                pager = this.masterEntityManager.pagedQuery( this.getSearchEntityClazz(), pager, sf );

            this.pageList = pager.getList();
            records = pager.getTotalNumberOfRows();
            total = pager.getTotalNumberOfPages();
            page = pager.getPageNumber();
        }
        catch ( Exception e ) {
            log.error( "masterEntityGridList Error", e );
        }
        return SUCCESS;
    }
}
